<?php

namespace App\Console\Commands;

use App\Models\Article;
use App\Models\SiteDomain;
use App\Service\Email;
use Illuminate\Console\Command;

class SendEmail extends Command
{
    /**
     * 请求：
     *  php artisan command:send-email
     *  sudo -u www php /www/wwwroot/option/artisan command:send-email
     *
     */
    /**
     * 参数与选项的区别
     *      在执行命令时，参数必须严格按定义时的顺序输入，不需输入参数名，只需输入参数的值即可。
     *      输入选项则必须带选项名，且选项名前须加 -- 前缀（选项简写字母前加 -），选项可按任意顺序输入
     */

    // 请求 以及参数
    // protected $signature = 'command:name {param1} {param2}';  // 必填参数
    // protected $signature = 'command:name {参数名?} {参数名=默认值} {参数名? : 参数说明}';  // 可选参数
    // protected $signature = 'command:name {--选项名} {--选项名=} {--选项名=默认值} {--简写字母|选项名} {--选项名 : 选项说明}';  // 选项
    protected $signature = 'command:send-email';
    protected $description = '每天发送邮件';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        // 获取时间：昨天的时间
        // 因为这几天没有数据，所以固定某一天的数据
        //$yesDay    = "2024-3-4";
        $yesDay    = date('Y-m-d', strtotime("-1 days"));
        $beginTime = strtotime($yesDay);
        $endTime   = strtotime($yesDay) + 86400 - 1;

        // 获取数据
        $lists = (new Article())->getArticleInTime($beginTime, $endTime);


        // 发送邮件参数
        $mail   = 'e-visible@easy-visible.com';
        //$mail   = '914432635@qq.com';
        //$mail   = '23231590@qq.com';
        $attach = 'D:/phpSite/slcm/option/public/favicon.ico'; // 附件
        $attach = ''; // 附件
        $data   = ['lists' => $lists, 'date' => $yesDay];
        $title  = '易见股份'.$yesDay.'舆情汇总';


        // 执行发送邮件
        $email = new Email();
        $res   = $email->send($mail, $title, $data, $attach);
        if($res === false){
            return $this->error('发送邮件失败！');
        }

        // 同时给煜哥发送邮件
        $mail   = '23231590@qq.com';
        $res   = $email->send($mail, $title, $data, $attach);
        if($res === false){
            return $this->error('发送邮件失败！');
        }

        return $this->line('发送邮件成功！');
    }


    // 参数与选项
    public function _handle()
    {
        // 参数
        echo $text = $this->argument('text');
        echo chr(10);
        $all = $this->argument();
        var_dump($all);
        echo chr(10);

        // 选项
        $option = $this->option('show');
        echo $option;
        echo chr(10);


        echo '测试';
        $this->info("md5('{测试}') = 测试");   // 输出

        return 0;
    }

}
